-- *****************************************************************************
-- *                                                    *     _       _        *
-- *  AdaDecoupe                                        *    / \   __| | __ _  *
-- *  http://code.google.com/p/adadecoupe/              *   / _ \ / _` |/ _` | *
-- *  Radim Badsi & Célia Biguzzi - IG3                 *  / ___ \ (_| | (_| | *
-- *  Polytech'Montpellier                              * /_/   \_\__,_|\__,_| *
-- *                                                    *                      *
-- *****************************************************************************
-- *                                                                           *
-- * actions.ads  -  Actions                                                   *
-- * Procédures associées aux différentes options du menu                      *
-- *                                                                           *
-- *****************************************************************************

with Ada.Text_Io; with Ada.Integer_Text_Io;
with Util; use Util;
with FSIO; with Liste_Commandes; with Commandes;
with Liste_Plaques_Finales; with Statistiques;
with Liste_Plaques; with Algo_Normal; with Algo_Largeur;
with Menu;
package Actions is
    
    type Donnees is private;
    
    procedure Charger_Commandes;
    procedure Charger_Commandes_Attente;
    
    procedure Charger_Env;
    -- Rôle : Charge les données générales, les commandes et le stock
    procedure Afficher_Liste_Commandes;
    -- Rôle : Affiche la liste des commandes
    procedure Afficher_Liste_Plaques;
    -- Rôle : Affiche la liste des plaques
      
    procedure Planifier;
    -- Donne accès à un menu qui permet à l'utilisateur
    -- de planifier les découpes
    -- de valider un plan de découpe
    -- de revenir en arrière
    procedure Planifier_Commandes;
    -- Rôle : Appel à la fonction de planification


    procedure Valider_A1;
    procedure Valider_A2;
    procedure Sauver (Prefixe : in String; D : in out Donnees);
    -- Rôle : Sauver toutes les informations dans les divers fichiers
    -- Prefixe : "a1" ou "a2"
    -- D : contient les données
	
    procedure Sauver_Tout;
	
    procedure Annuler_Commande;
    -- Rôle : Annule une commande dont le numéro est saisie
    -- Appel la fonction d'annulation (tassage,...)
    procedure Modifier_Commande;
    -- Rôle : Modifier une commande en entrant les nouvelles informations
private
    type Donnees is
    record
        Liste_Comm, Liste_Comm_Attente, Liste_Comm_Err : Liste_Commandes.T_Liste;
        Liste_Fin : Liste_Plaques_Finales.T_Liste;
        Stock : Liste_Plaques.T_Liste;
        Indicateurs : Statistiques.Stat;
    end record;
    
    procedure Dupliquer(Dest : out Donnees; Src : in Donnees);
end Actions;